In traditional databases and data management systems, data is stored in an essentially static form within one or more computer memories. That is, the data may generally be altered when desired, but at any given moment the stored data represents a discrete, static, finite, persistent data set against which, e.g., queries may be issued.
In many settings, however, data may not be effectively or usefully managed in this way. In particular, it may occur that data arrives essentially continuously, as a stream of data points corresponding, e.g., to real-world events. Data stream management systems (DSMS) have been developed to make use of such data.
For example, data representing events within a manufacturing facility may fluctuate over the course of a day and/or over the lifetime of equipment within the facility. Such data may provide insight into an operational status of the facility, in order to optimize such operations. Additional/alternative examples of such data streams include temperature or other environmental data collected by sensors, computer network analytics, patient health data, or data describing business process(es).
During runtime, pre-stored queries may be applied against the data as the data arrives. For example, a portion of the data may be temporarily stored and the queries applied against the stored data portion before the stored data portion is deleted from storage. However, if the queries must be modified, then conventional systems must generally restart with the new queries. The stored data portion is then unavailable or erased, so that new data must be collected before the new queries may be applied. This may result in a harmful delay and/or related difficulties for the user of the DSMS.